/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Servlets;

import Conexion.GestionSQL;
import Negocio.Notificacion;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author jorge.correa
 */
public class Registro extends HttpServlet {

    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            String strForm = request.getParameter("txtForm");  
            String strAccion = request.getParameter("txtAccion");                        

            String strSQL = "";
            String strMensaje = "";
            String strResult = null;
            String strRadicado="";  
            String strComentario="";
            String strConsecutivo="";
            String strUsuario="";

           if(strForm.equals("frmAddEtapa")){
                String strFechaReg = request.getParameter("txtFechaReg");
                String strCodigoSol = request.getParameter("txtCodigoSol");
                String strIdEtapa = request.getParameter("txtIdEtapa");
                String strObs = request.getParameter("txtObs");
                String strFechaInicio = request.getParameter("dtFechaInicio");
                String strFechaFin = request.getParameter("dtFechaFin");
                String strReciboSatisf = request.getParameter("txtReciboSatisf");
                String strValor = request.getParameter("txtValor");
                String strNroActa = request.getParameter("txtNroActa");
                
                if (strAccion.equals("C")){   
                    strSQL = "insert into tbl_etapas_x_solicitud(txtIdSol,txtIdEtapa,dtFechaRegistro,txtObservacion,txtValor,txtNumActa,txtSatisfaccion,dtFechaInicio,dtFechaFin)"
                            + " values('" + strCodigoSol + "','" + strIdEtapa + "','" + strFechaReg + "','" + strObs + "','" + strValor + "','" + strNroActa + "',"
                            + "'" + strReciboSatisf + "','" + strFechaInicio + "','" + strFechaFin + "')";          
                }
                
                if (strAccion.equals("V")){   
                    strConsecutivo = request.getParameter("txtConsecutivo");
                    strSQL = "update tbl_etapas_x_solicitud set txtObservacion = '" + strObs + "', txtValor = '" + strValor + "', txtNumActa = '" + strNroActa + "', "
                            + "txtSatisfaccion = '" + strReciboSatisf + "', dtFechaInicio = '" + strFechaInicio + "', dtFechaFin = '" + strFechaFin + "' where txtConsecutivo = '" + strConsecutivo + "'";
                }
  
           }           
                        
            if (strForm.equals("frmEquipo")){

                String strCodigo = request.getParameter("txtCodigo");
                String strNombre = request.getParameter("txtNombre");               

                //Creación

                if (strAccion.equals("C")){   
                    
                    //Validar duplicidad.
                    strResult = validarRegistro(strCodigo,strForm);           

                    if (strResult != null){
                        out.println(strResult);
                    }else{                
                        strSQL = "INSERT INTO tbl_equipos (txtCodigo,txtNombre) VALUES('" + strCodigo + "','" + strNombre + "');";
                    }
                }

                if (strAccion.equals("V")){                             
                        strSQL = "update tbl_equipos set txtNombre = '" + strNombre + "' where txtCodigo = '" +  strCodigo + "'";                                         
                }
            }
            
            if (strForm.equals("frmRol")){

                String strCodigo = request.getParameter("txtCodigo");
                String strNombre = request.getParameter("txtNombre");               

                //Creación

                if (strAccion.equals("C")){   
                    //Validar duplicidad.
                    strResult = validarRegistro(strCodigo,strForm);           

                    if (strResult != null){
                        out.println(strResult);
                    }else{                
                        strSQL = "INSERT INTO tbl_roles (txtCodigo,txtNombre) VALUES('" + strCodigo + "','" + strNombre + "');";
                    }
                }

                if (strAccion.equals("V")){                             
                        strSQL = "update tbl_roles set txtNombre = '" + strNombre + "' where txtCodigo = '" +  strCodigo + "'";                                         
                }
            }
                                            
            if (strForm.equals("frmTipoPersona")){

                String strCodigo = request.getParameter("txtCodigo");
                String strNombre = request.getParameter("txtNombre");               

                //Creación

                if (strAccion.equals("C")){   
                    //Validar duplicidad.
                    strResult = validarRegistro(strCodigo,strForm);           

                    if (strResult != null){
                        out.println(strResult);
                    }else{                
                        strSQL = "INSERT INTO tbl_tipos_persona (txtCodigo,txtNombre) VALUES('" + strCodigo + "','" + strNombre + "');";
                    }
                }

                if (strAccion.equals("V")){                             
                        strSQL = "update tbl_tipos_persona set txtNombre = '" + strNombre + "' where txtCodigo = '" +  strCodigo + "'";                                         
                }
            }
            
            if (strForm.equals("frmEtapa")){

                String strCodigo = request.getParameter("txtCodigo");
                String strNombre = request.getParameter("txtNombre");         
                String strEsPrimaria = request.getParameter("txtEsPrimaria");

                //Creación

                if (strAccion.equals("C")){   
                    //Validar duplicidad.
                    strResult = validarRegistro(strCodigo,strForm);           

                    if (strResult != null){
                        out.println(strResult);
                    }else{                
                        strSQL = "INSERT INTO tbl_etapas (txtCodigo,txtNombre,txtPrimaria) VALUES('" + strCodigo + "','" + strNombre + "','" + strEsPrimaria + "');";
                    }
                }

                if (strAccion.equals("V")){                             
                        strSQL = "update tbl_etapas set txtNombre = '" + strNombre + "', txtPrimaria = '" + strEsPrimaria + "' where txtCodigo = '" +  strCodigo + "'";                                         
                }
            }
            
            if (strForm.equals("frmFAQ")){

                String strPregunta = request.getParameter("txtPregunta");
                String strRespuesta = request.getParameter("txtRespuesta");               

                //Creación

                if (strAccion.equals("C")){                 
                        strSQL = "INSERT INTO tbl_preguntas_frecuentes (txtPregunta,txtRespuesta) VALUES('" + strPregunta + "','" + strRespuesta + "');";                   
                }

                if (strAccion.equals("V")){                             
                     String strCodigo = request.getParameter("txtCodigo");
                    strSQL = "update tbl_preguntas_frecuentes set txtPregunta = '" + strPregunta + "', txtRespuesta='" + strRespuesta + "' where txtCodigo = '" +  strCodigo + "'";                                         
                }
            }
            
            if (strForm.equals("frmCampoXEtapa")){

                String strEtapa = request.getParameter("txtEtapa");
                String strCampo = request.getParameter("txtCampo");         

                //Creación

                if (strAccion.equals("C")){   
                    //Validar duplicidad.
                    strResult = validarRegistro(strEtapa + ">" + strCampo,strForm);           

                    if (strResult != null){
                        out.println(strResult);
                    }else{                
                        strSQL = "INSERT INTO tbl_campos_X_etapa (txtIdEtapa,txtIdCampo) VALUES('" + strEtapa + "','" + strCampo + "');";
                    }
                }              
            } 
                        
            if (strForm.equals("frmEstado")){

                String strCodigo = request.getParameter("txtCodigo");
                String strNombre = request.getParameter("txtNombre");         
                String strAcuersoS = request.getParameter("txtAcuerdoS");
                String strNumDias = request.getParameter("txtNumDias");

                //Creación

                if (strAccion.equals("C")){   
                    //Validar duplicidad.
                    strResult = validarRegistro(strCodigo,strForm);           

                    if (strResult != null){
                        out.println(strResult);
                    }else{                
                        strSQL = "INSERT INTO tbl_estados_solicitud (txtCodigo,txtNombre,txtAcuerdoServicio,txtNumDias) VALUES('" + strCodigo + "','" + strNombre + "','" + strAcuersoS + "','" + strNumDias + "');";
                    }
                }

                if (strAccion.equals("V")){                             
                        strSQL = "update tbl_estados_solicitud set txtNombre = '" + strNombre + "', txtAcuerdoServicio = '" + strAcuersoS + "', txtNumDias = '" + strNumDias + "' where txtCodigo = '" +  strCodigo + "'";                                         
                }
            }
                                
             if (strForm.equals("frmServicio")){

                String strCodigo = request.getParameter("txtCodigo");
                String strNombre = request.getParameter("txtNombre");         
                String strIdEquipo = request.getParameter("txtIdEquipo");
                String strValores = request.getParameter("txtValores");

                //Creación

                if (strAccion.equals("C")){   
                    //Validar duplicidad.
                    strResult = validarRegistro(strCodigo,strForm);           

                    if (strResult != null){
                        out.println(strResult);
                    }else{                
                        strSQL = "INSERT INTO tbl_servicios (txtCodigo,txtNombre,txtIdEquipo,txtValores) VALUES('" + strCodigo + "','" + strNombre + "','" + strIdEquipo + "','" + strValores + "');";
                    }
                }

                if (strAccion.equals("V")){                             
                        strSQL = "update tbl_servicios set txtNombre = '" + strNombre + "', txtIdEquipo = '" + strIdEquipo + "', txtValores = '" + strValores + "' where txtCodigo = '" +  strCodigo + "'";                                         
                }
            }             
                     
            if (strForm.equals("frmUsuario")){

                strUsuario = request.getParameter("txtUsuario");
                String strClave = request.getParameter("txtClave");         
                String strPersona = request.getParameter("txtPersona");

                //Creación

                if (strAccion.equals("C")){   
                    //Validar duplicidad.
                    strResult = validarRegistro(strPersona,strForm);           

                    if (strResult != null){
                        out.println(strResult);
                    }else{                
                        strSQL = "INSERT INTO tbl_usuarios (txtUsuario,txtClave,txtIdPersona) VALUES('" + strUsuario + "','" + strClave + "','" + strPersona + "');";
                    }
                }

                if (strAccion.equals("V")){                             
                        strSQL = "update tbl_usuarios set txtUsuario = '" + strUsuario + "', txtClave = '" + strClave + "' where txtIdPersona = '" +  strPersona + "'";                                         
                }
            }          
            
            if (strForm.equals("frmEquipoXComp")){

                String strComponente = request.getParameter("txtComponente");
                String strEquipo = request.getParameter("txtEquipo");         

                //Creación

                if (strAccion.equals("C")){   
                    //Validar duplicidad.
                    strResult = validarRegistro(strComponente + ">" + strEquipo,strForm);           

                    if (strResult != null){
                        out.println(strResult);
                    }else{                
                        strSQL = "INSERT INTO tbl_equipos_x_componente (txtIdEquipo,txtIdComponente) VALUES('" + strEquipo + "','" + strComponente + "');";
                    }
                }              
            }                   
            
            if (strForm.equals("frmCompPlataforma")){

                String strCodigo = request.getParameter("txtCodigo");
                String strNombre = request.getParameter("txtNombre");         
                String strPersona = request.getParameter("txtPersona");
                String strDecripcion = request.getParameter("txtDescripcion");

                //Creación

                if (strAccion.equals("C")){   
                    //Validar duplicidad.
                    strResult = validarRegistro(strCodigo,strForm);           

                    if (strResult != null){
                        out.println(strResult);
                    }else{                
                        strSQL = "INSERT INTO tbl_componentes_plataforma (txtCodigo,txtNombre,txtIdPersona,txtDescripcion) VALUES('" + strCodigo + "','" + strNombre + "','" + strPersona + "','" + strDecripcion + "');";
                    }
                }

                if (strAccion.equals("V")){                             
                        strSQL = "update tbl_componentes_plataforma set txtNombre = '" + strNombre + "', txtIdPersona = '" + strPersona + "', txtDescripcion = '" + strDecripcion + "' where txtCodigo = '" +  strCodigo + "'";                                         
                }
            }
                    
            if (strForm.equals("frmRolXPersona")){

                String strPersona = request.getParameter("txtPersona");
                String strRol = request.getParameter("txtRol");         

                //Creación

                if (strAccion.equals("C")){   
                    //Validar duplicidad.
                    strResult = validarRegistro(strPersona + ">" + strRol,strForm);           

                    if (strResult != null){
                        out.println(strResult);
                    }else{                
                        strSQL = "INSERT INTO tbl_roles_x_persona (txtIdPersona,txtIdRol) VALUES('" + strPersona + "','" + strRol + "');";
                    }
                }              
            }
            
            if (strForm.equals("frmPersona")){

                String strId = request.getParameter("txtId");
                String strNombre = request.getParameter("txtNombre");         
                String strTipoPersona = request.getParameter("txtTipoPersona");
                String strDireccion = request.getParameter("txtDireccion");
                String strTelefono = request.getParameter("txtTelefono");
                String strEmail = request.getParameter("txtEmail");
                String strEsMiembro = request.getParameter("txtEsMiembro");
                String strNombreC = request.getParameter("txtNombreC");
                String strTipoRol = request.getParameter("txtTipoRol");

                //Creación

                if (strAccion.equals("C")){   
                    //Validar duplicidad.
                    strResult = validarRegistro(strId,strForm);           

                    if (strResult != null){
                        out.println(strResult);
                    }else{                
                        strSQL = "INSERT INTO tbl_personas (txtIdentificacion,txtNombre,txtTipoPersona,txtDireccion,txtTelefono,txtEmail,txtNombreContacto,txtMiembroUDEA,txtTipoRol) "
                                            + "VALUES('" + strId + "','" + strNombre + "','" + strTipoPersona + "','" + strDireccion + "','" + strTelefono + "','" + strEmail + "','" + strNombreC + "','" + strEsMiembro + "','" + strTipoRol + "');";
                    }
                }

                if (strAccion.equals("V")){                             
                        strSQL = "update tbl_personas set txtNombre = '" + strNombre + "', txtTipoPersona = '" + strTipoPersona + "', txtDireccion = '" + strDireccion + "', txtTelefono = '" + strTelefono + "', txtEmail = '" + strEmail + "', txtNombreContacto = '" + strNombreC + "', txtMiembroUDEA = '" + strEsMiembro + "', txtTipoRol = '" + strTipoRol + "' where txtIdentificacion = '" +  strId + "'";                                         
                }
            }
            
            if (strForm.equals("frmSolicitud")){
                String strNumId = request.getParameter("txtNumId");
                String strFechaRecibo = request.getParameter("txtFechaRecibo");         
                String strIdEstado = request.getParameter("txtIdEstado");
                String strIdServicio = request.getParameter("txtServicio");
                String strIdTipoConsulta = request.getParameter("txtTipoConsulta");
                String strDetalle = request.getParameter("txtDetalle");
                String strFechaFinal = "";
                String strNumDiasRpta = "";
                                            
                 if (strAccion.equals("C")){   
                     
                     // Cálculo del consecutivo de la solicitud.
                    
                    strSQL = "select g.txtConsecutivo from tbl_generales g where g.txtForm = 'frmGeneral'";
                    String[] strRadicados = GestionSQL.getFila(strSQL);        
                    
                    if (strRadicados != null){           
                        strRadicado = Integer.toString(Integer.parseInt(strRadicados[0]) + 1);            
                    }else{          
                        strRadicado = "1";
                    }        

                    if (!strRadicado.equals("")){           
                        strSQL = "update tbl_generales set txtConsecutivo = '" + strRadicado + "' where txtForm = 'frmGeneral'";         
                        GestionSQL.ejecuta(strSQL);
                    }
                    
                    String[] strResponsable = null;
                    
                    if (strIdServicio.equals("OTRO")){
                        strSQL = "select g.txtAdministrador from tbl_generales g where g.txtForm = 'frmGeneral'";            
                    }else{
                         strSQL = "select comp.txtIdPersona from tbl_servicios s, tbl_equipos_x_componente exc, tbl_componentes_plataforma comp where (s.txtIdEquipo = exc.txtIdEquipo) and (exc.txtIdComponente = comp.txtCodigo) and s.txtCodigo = '" + strIdServicio + "' limit 1";
                    }
                    
                    strResponsable = GestionSQL.getFila(strSQL);
                    
                    strSQL = "insert into tbl_solicitudes values('" + strRadicado + "','" + strFechaRecibo + "','" + strIdEstado + "','" + strDetalle + "','" + strIdServicio + "','" + strIdTipoConsulta + "','" + strNumId + "','" + strResponsable[0] + "','" + strFechaFinal + "','" + strNumDiasRpta + "')"; 
                                       
                 }
                 
                 if (strAccion.equals("V")){   
                     strComentario = request.getParameter("txtComentario");
                     strConsecutivo = request.getParameter("txtConsecutivo");
                     strUsuario = request.getParameter("txtUsuario");                     
                     String strFecha = obtenerStringFechaActual();
                     
                     if (strUsuario.equals("")){
                         strUsuario = "Usuario";
                     }else{
                         strUsuario = "Especialista";
                     }
                     
                     strSQL = "insert into tbl_comentarios_x_solicitud values ('" + strConsecutivo + "','" + strComentario + "','" + strFecha + "','" + strUsuario + "')";
                 }
            }
            
            if (strForm.equals("frmGeneral")){
               strConsecutivo = request.getParameter("txtConsecutivo");
               String strNroPaginas = request.getParameter("txtNumRegPag");
               String strTitulo = request.getParameter("txtTitulo");
               String strMensajeIni = request.getParameter("dMensajeIni");
               String strNomServidor = request.getParameter("txtServidor");
               String strNumPuerto = request.getParameter("txtNumPuerto");
               strUsuario = request.getParameter("txtUsuario");
               String strClave= request.getParameter("txtClave");
               String strAdministrador= request.getParameter("txtAdministrador");
               String strRutaApp = request.getParameter("txtRutaApp");
               
               if (strAccion.equals("C")){                                                                         
                    strSQL = "INSERT INTO tbl_generales values('" + strForm + "','" + strConsecutivo + "','" + strNroPaginas + "','" + strTitulo + "','" + strMensajeIni  + "','" + strNomServidor + "','" + strNumPuerto + "','" + strUsuario +"','" + strClave + "','" + strAdministrador + "','" + strRutaApp + "');";
               } 
               
               if (strAccion.equals("V")){    
                    strSQL = "update tbl_generales set txtConsecutivo='" + strConsecutivo + "', txtNumRegPag='" + strNroPaginas + "', txtTitulo='" + strTitulo + "', txtMensajeIni='" + strMensajeIni + 
                                  "', txtServidor='" + strNomServidor +"', txtNumPuerto='" + strNumPuerto+ "', txtUsuario='" + strUsuario+ "', txtClave='" + strClave+ "', txtAdministrador='" + strAdministrador+ "', txtRutaApp='" + strRutaApp + "' where txtForm='" + strForm + "'";                    
                }
           }
            
            if (!strSQL.equals("")){
                strMensaje = GestionSQL.ejecuta(strSQL);
                
                if (strMensaje == null){
                    //Inserción exitosa                     
                    out.println("<html>");
                    out.println("<head>");
                    out.println("</head>");
                    out.println("<body>");
                    out.println("<div class='TEXTOEXITO'>");                                                     
                    out.println("El registro fue ingresado correctamente!.");                  
                    out.println("</div>");                   
                    out.println("</body>");
                    out.println("</html>");                         
                    
                    if (strForm.equals("frmSolicitud")){
                        Notificacion n = new Notificacion();
                        
                        if (strAccion.equals("C")){     
                            n.notificarCreacionSol(strRadicado);
                            String strCadena = "Su solicitud de consulta de servicio ha sido creado satisfactoriamente en el sistema con el consecutivo #"+strRadicado+".";
                            out.println("<script type='text/javascript'>");
                            out.println("alert('" + strCadena +"');");
                            out.println("</script>");
                        }
                        
                        if (strAccion.equals("V")){     
                            n.notificarComentario(strComentario,strConsecutivo,strUsuario);
                        }
                    }
                                         
                }else{
                    //Inserción fallida                   
                    out.println("<html>");
                    out.println("<head>");
                    out.println("</head>");
                    out.println("<body>");
                    out.println("<div class='TEXTOFALLO'>");
                    out.println("Se produjo el siguiente error al insertar el registro: " + strMensaje);
                    out.println("</div>");                  
                    out.println("</body>");
                    out.println("</html>");
                }
            }
            
        } finally {            
            out.close();
        }
    }
    
    private String obtenerStringFechaActual(){
        //Obtener la fecha actual.

        Calendar c = Calendar.getInstance();
        String strDia, strMes, strAnio, strFechaActual;

        strDia = Integer.toString(c.get(Calendar.DATE));
        strMes = Integer.toString(c.get(Calendar.MONTH)+1);
        strAnio = Integer.toString(c.get(Calendar.YEAR));                

        if (Integer.parseInt(strMes) < 10){
                strMes = "0" + strMes;
        }                    

        strFechaActual = strAnio + "-" + strMes + "-" + strDia;                        
       
        return strFechaActual;        
    }
    
    private Date obtenerDateFechaActual(){
        //Obtener la fecha actual.

        Calendar c = Calendar.getInstance();
        String strDia, strMes, strAnio, strFechaActual;

        strDia = Integer.toString(c.get(Calendar.DATE));
        strMes = Integer.toString(c.get(Calendar.MONTH)+1);
        strAnio = Integer.toString(c.get(Calendar.YEAR));                

        if (Integer.parseInt(strMes) < 10){
                strMes = "0" + strMes;
        }                    

        strFechaActual = strAnio + "-" + strMes + "-" + strDia;                        
        SimpleDateFormat sdfFechaActual = new SimpleDateFormat("yyyy-MM-dd");
        Date dtFechaActual = null;

        try{
                dtFechaActual = sdfFechaActual.parse(strFechaActual);
        }catch(ParseException pe){
                pe.printStackTrace();
        }

        return dtFechaActual;        
    }
    
    private String validarRegistro(String strClave,String strForm){
        
        String[] strResult = null;
        String strSQL = null;
        String strMensaje = null;
        
        // Equipos.
        
        if (strForm.equals("frmEquipo")){
                strSQL = "SELECT tbl.txtCodigo from tbl_equipos tbl where tbl.txtCodigo = '" + strClave + "'";
                strMensaje = "<html>\n";
                strMensaje = strMensaje + "<head>\n";
                strMensaje = strMensaje + "<body>\n";
                strMensaje = strMensaje + "<div class='TEXTOFALLO'>\n";
                strMensaje = strMensaje + "Ya existe un registro de equipo con el código " + strClave + ". Por favor ingrese un código diferente.\n";
                strMensaje = strMensaje + "</div>\n";
                strMensaje = strMensaje + "</body>\n";
                strMensaje = strMensaje + "</html>";  
        }        
        
        // Roles.
        
        if (strForm.equals("frmRol")){
                strSQL = "SELECT tbl.txtCodigo from tbl_roles tbl where tbl.txtCodigo = '" + strClave + "'";
                strMensaje = "<html>\n";
                strMensaje = strMensaje + "<head>\n";
                strMensaje = strMensaje + "<body>\n";
                strMensaje = strMensaje + "<div class='TEXTOFALLO'>\n";
                strMensaje = strMensaje + "Ya existe un registro de rol con el código " + strClave + ". Por favor ingrese un código diferente.\n";
                strMensaje = strMensaje + "</div>\n";
                strMensaje = strMensaje + "</body>\n";
                strMensaje = strMensaje + "</html>";  
        }
        
        // Tipos de persona.
        
        if (strForm.equals("frmTipoPersona")){
                strSQL = "SELECT tbl.txtCodigo from tbl_tipos_persona tbl where tbl.txtCodigo = '" + strClave + "'";
                strMensaje = "<html>\n";
                strMensaje = strMensaje + "<head>\n";
                strMensaje = strMensaje + "<body>\n";
                strMensaje = strMensaje + "<div class='TEXTOFALLO'>\n";
                strMensaje = strMensaje + "Ya existe un registro de tipo de persona con el código " + strClave + ". Por favor ingrese un código diferente.\n";
                strMensaje = strMensaje + "</div>\n";
                strMensaje = strMensaje + "</body>\n";
                strMensaje = strMensaje + "</html>";  
        }
        
        // Etapa.
        
        if (strForm.equals("frmEtapa")){
                strSQL = "SELECT tbl.txtCodigo from tbl_etapas tbl where tbl.txtCodigo = '" + strClave + "'";
                strMensaje = "<html>\n";
                strMensaje = strMensaje + "<head>\n";
                strMensaje = strMensaje + "<body>\n";
                strMensaje = strMensaje + "<div class='TEXTOFALLO'>\n";
                strMensaje = strMensaje + "Ya existe un registro de tipo de persona con el código " + strClave + ". Por favor ingrese un código diferente.\n";
                strMensaje = strMensaje + "</div>\n";
                strMensaje = strMensaje + "</body>\n";
                strMensaje = strMensaje + "</html>";  
        }
        
         // Campos.
        
        if (strForm.equals("frmCampo")){
                strSQL = "SELECT tbl.txtCodigo from tbl_campos tbl where tbl.txtCodigo = '" + strClave + "'";
                strMensaje = "<html>\n";
                strMensaje = strMensaje + "<head>\n";
                strMensaje = strMensaje + "<body>\n";
                strMensaje = strMensaje + "<div class='TEXTOFALLO'>\n";
                strMensaje = strMensaje + "Ya existe un registro de campo con el código " + strClave + ". Por favor ingrese un código diferente.\n";
                strMensaje = strMensaje + "</div>\n";
                strMensaje = strMensaje + "</body>\n";
                strMensaje = strMensaje + "</html>";  
        }
        
        // Campo por etapa.
                
         if (strForm.equals("frmCampoXEtapa")){
                String[] strDatos = strClave.split(">");
             
                strSQL = "SELECT tbl.txtIdEtapa from tbl_campos_x_etapa tbl where (tbl.txtIdEtapa = '" + strDatos[0] + "' and tbl.txtIdCampo = '" + strDatos[1] + "')";
                strMensaje = "<html>\n";
                strMensaje = strMensaje + "<head>\n";
                strMensaje = strMensaje + "<body>\n";
                strMensaje = strMensaje + "<div class='TEXTOFALLO'>\n";
                strMensaje = strMensaje + "Ya existe un registro de campo por etapa con los valores seleccionados. Por favor seleccione valores diferentes.\n";
                strMensaje = strMensaje + "</div>\n";
                strMensaje = strMensaje + "</body>\n";
                strMensaje = strMensaje + "</html>";  
        }
        
        // Estado.
        
        if (strForm.equals("frmEstado")){
                strSQL = "SELECT tbl.txtCodigo from tbl_estados_solicitud tbl where tbl.txtCodigo = '" + strClave + "'";
                strMensaje = "<html>\n";
                strMensaje = strMensaje + "<head>\n";
                strMensaje = strMensaje + "<body>\n";
                strMensaje = strMensaje + "<div class='TEXTOFALLO'>\n";
                strMensaje = strMensaje + "Ya existe un registro de estado con el código " + strClave + ". Por favor ingrese un código diferente.\n";
                strMensaje = strMensaje + "</div>\n";
                strMensaje = strMensaje + "</body>\n";
                strMensaje = strMensaje + "</html>";  
        }
        
        // Servicios.
        
        if (strForm.equals("frmServicio")){
                strSQL = "SELECT tbl.txtCodigo from tbl_servicios tbl where tbl.txtCodigo = '" + strClave + "'";
                strMensaje = "<html>\n";
                strMensaje = strMensaje + "<head>\n";
                strMensaje = strMensaje + "<body>\n";
                strMensaje = strMensaje + "<div class='TEXTOFALLO'>\n";
                strMensaje = strMensaje + "Ya existe un registro de servicio con el código " + strClave + ". Por favor ingrese un código diferente.\n";
                strMensaje = strMensaje + "</div>\n";
                strMensaje = strMensaje + "</body>\n";
                strMensaje = strMensaje + "</html>";  
        }
        
        // Usuarios.
        
        if (strForm.equals("frmUsuario")){
                strSQL = "SELECT tbl.txtIdPersona from tbl_usuarios tbl where tbl.txtIdPersona = '" + strClave + "'";
                strMensaje = "<html>\n";
                strMensaje = strMensaje + "<head>\n";
                strMensaje = strMensaje + "<body>\n";
                strMensaje = strMensaje + "<div class='TEXTOFALLO'>\n";
                strMensaje = strMensaje + "Ya existe un registro de usuario con el código " + strClave + ". Por favor ingrese un código diferente.\n";
                strMensaje = strMensaje + "</div>\n";
                strMensaje = strMensaje + "</body>\n";
                strMensaje = strMensaje + "</html>";  
        }
        
        // Componentes de la plataforma.
        
        if (strForm.equals("frmCompPlataforma")){
                strSQL = "SELECT tbl.txtCodigo from tbl_componentes_plataforma tbl where tbl.txtCodigo = '" + strClave + "'";
                strMensaje = "<html>\n";
                strMensaje = strMensaje + "<head>\n";
                strMensaje = strMensaje + "<body>\n";
                strMensaje = strMensaje + "<div class='TEXTOFALLO'>\n";
                strMensaje = strMensaje + "Ya existe un registro de componente con el código " + strClave + ". Por favor ingrese un código diferente.\n";
                strMensaje = strMensaje + "</div>\n";
                strMensaje = strMensaje + "</body>\n";
                strMensaje = strMensaje + "</html>";  
        }                                        
        
        // Personas.
        
        if (strForm.equals("frmPersona")){
                strSQL = "SELECT tbl.txtIdentificacion from tbl_personas tbl where tbl.txtIdentificacion = '" + strClave + "'";
                strMensaje = "<html>\n";
                strMensaje = strMensaje + "<head>\n";
                strMensaje = strMensaje + "<body>\n";
                strMensaje = strMensaje + "<div class='TEXTOFALLO'>\n";
                strMensaje = strMensaje + "Ya existe un registro de persona con el código " + strClave + ". Por favor ingrese un código diferente.\n";
                strMensaje = strMensaje + "</div>\n";
                strMensaje = strMensaje + "</body>\n";
                strMensaje = strMensaje + "</html>";  
        } 
        
        // Equipos por componente.
                
         if (strForm.equals("frmEquipoXComp")){
                String[] strDatos = strClave.split(">");
             
                strSQL = "SELECT tbl.txtIdComponente from tbl_equipos_x_componente tbl where (tbl.txtIdComponente = '" + strDatos[0] + "' and tbl.txtIdEquipo = '" + strDatos[1] + "')";
                strMensaje = "<html>\n";
                strMensaje = strMensaje + "<head>\n";
                strMensaje = strMensaje + "<body>\n";
                strMensaje = strMensaje + "<div class='TEXTOFALLO'>\n";
                strMensaje = strMensaje + "Ya existe un registro de equipo por componente con los valores seleccionados. Por favor seleccione valores diferentes.\n";
                strMensaje = strMensaje + "</div>\n";
                strMensaje = strMensaje + "</body>\n";
                strMensaje = strMensaje + "</html>";  
        }         
         
         // Rol por persona.
                
         if (strForm.equals("frmRolXPersona")){
                String[] strDatos = strClave.split(">");
             
                strSQL = "SELECT tbl.txtIdPersona from tbl_roles_x_persona tbl where (tbl.txtIdPersona = '" + strDatos[0] + "' and tbl.txtIdRol = '" + strDatos[1] + "')";
                strMensaje = "<html>\n";
                strMensaje = strMensaje + "<head>\n";
                strMensaje = strMensaje + "<body>\n";
                strMensaje = strMensaje + "<div class='TEXTOFALLO'>\n";
                strMensaje = strMensaje + "Ya existe un registro de rol por persona con los valores seleccionados. Por favor seleccione valores diferentes.\n";
                strMensaje = strMensaje + "</div>\n";
                strMensaje = strMensaje + "</body>\n";
                strMensaje = strMensaje + "</html>";  
        } 
         
        if (strSQL != null){
            strResult = GestionSQL.getFila(strSQL);
            
            if (strResult != null){
                return strMensaje;
            }else{
                 return null;
            }
        }else{
            return null;
        }                
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP
     * <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP
     * <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
